<script>
  // 获取加码URL Link

        // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/url-link/generateUrlLink.html

        /*
            一、获取加密URL Link

                    1、接口英文名

                              gennerateUrlLink

                    2、功能描述

                              获取小程序 URL Link ，适用于短信、邮件、网页、微信内等拉起小程序的业务场景。

                              目前仅针对国内非个人主体的小程序开发，

                              详见：  获取 URL Link (https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-link.html)

                    3、注意事项

                              <1>、调用上限

                                      ①、生成端：每天生成 URL Scheme（加密 明文） 和 URL Link 的总数量上限为50万

                                      ②、打开端：每天通过 URL Scheme（加密 明文） 和 URL Link 打开小程序的总次数上限为300万

                                      ③、自 2023 年 12 月 19 日起，取消 URL Link 一人一链的限制，支持同一条连接被多名用户访问。
                                      
                                                详细调整说明可见《URL Scheme 和 URL Link优化公告》。

                                                link:https://developers.weixin.qq.com/community/develop/doc/00024e32cbc36055c0c0a34b066401

                              <2>、返回值说明

                                      如果调用成功，会直接返回生成的小程序 Url Link  。 

                                      如果请求失败，会返回JSON格式的数据。

                              <3>、其他注意事项

                                      加密 URL Link 支持开发者自行在链接后面拼接 query 参数，详见获取 URL Link

                                      只能生成已发布的小程序的 URL Link。

                                      在微信内或者安卓手机打开 URL Link 时，默认会先跳转官方 H5 中间页，如果需要定制 H5 内容，可以使用云开发静态网站
        */

        /*
              二、调用方式

                        1、HTTPS调用

                                POST https://api.weixin.qq.com/wxa/generate_urllink?access_token=ACCESS_TOKEN

                        2、云调用

                                出入参和HTTPS调用相同，调用方式可查看云调用说明文档

                                接口方法为: openapi.urllink.generate

                        3、第三方调用

                                ①、调用方式以及出入参和HTTPS相同，仅是调用的token不同

                                ②、该接口所属的权限集id为：88、115

                                ③、服务商获得其中之一权限集授权后，可通过使用authorizer_access_token代商家进行调用

                        4、请求参数

                                          属性	            类型	必填	      说明

                                      ①、access_token	    string	是	    接口调用凭证，该参数为 URL 参数，非 Body 参数。
                                                                        使用getAccessToken 或者 authorizer_access_token
                                                                        
                                      ②、path	            string	否	    通过 URL Link 进入的小程序页面路径，必须是已经发布的小程序存在的页面，不可携带 query 。
                                                                          path 为空时会跳转小程序主页

                                      ③、query	          string	否	    通过 URL Link 进入小程序时的query，最大1024个字符，
                                                                          只支持数字，大小写英文以及部分特殊字符：!#$&'()*+,/:;=?@-._~%

                                      ④、expire_type	    number	否	    默认值0.小程序 URL Link 失效类型，失效时间：0，失效间隔天数：1

                                      ⑤、expire_time	    number	否	    到期失效的 URL Link 的失效时间，为 Unix 时间戳。
                                                                          生成的到期失效 URL Link 在该时间前有效。最长有效期为30天。expire_type 为 0 必填

                                      ⑥、expire_interval	number	否	    到期失效的URL Link的失效间隔天数。生成的到期失效URL Link在该间隔时间到达前有效。
                                                                          最长间隔天数为30天。expire_type 为 1 必填

                                      ⑦、cloud_base	      object	否	    云开发静态网站自定义 H5 配置参数，可配置中转的云开发 H5 页面。不填默认用官方 H5 页面

                                                        属性	          类型	必填	说明
                                                    ⑨、env	          string	是	云开发环境
                                                    ⑩、domain	        string	否	静态网站自定义域名，不填则使用默认域名
                                                    ⑪、path	          string	否	云开发静态网站 H5 页面路径，不可携带 query
                                                    ⑫、query	        string	否	云开发静态网站 H5 页面 query 参数，最大 1024 个字符，只支持数字，大小写英文以及部分特殊字符：!#$&'()*+,/:;=?@-._~%`
                                                    ⑬、resource_appid	string	否	第三方批量代云开发时必填，表示创建该 env 的 appid （小程序/第三方平台）
                                                    
                                      ⑭、env_version	string	否	默认值"release"。要打开的小程序版本。正式版为 "release"，体验版为"trial"，开发版为"develop"，仅在微信外打开时生效。


                        5、返回参数

                                            属性	  类型	    说明

                                      ①、errcode	number	  错误码

                                      ②、errmsg	  string	  错误信息

                                      ③、url_link	string	  生成的小程序 URL Link
        */

        /*
              三、调用示例

                        1、请求数据示例

                                {
                                    "path": "/pages/publishHomework/publishHomework",
                                    "query": "",
                                    "expire_type":1,
                                    "expire_interval":1,
                                    "env_version": "release",
                                    "cloud_base":
                                    {
                                        "env": "xxx",
                                        "domain": "xxx.xx",
                                        "path": "/jump-wxa.html",
                                        "query": "a=1&b=2"
                                    }
                                }

                                  返回数据示例

                                        {
                                          "errcode": 0,
                                          "errmsg": "ok",
                                          "url_link": "URL Link"
                                        }

                        2、请求数据示例

                                  const cloud = require('wx-server-sdk')
                                  cloud.init({
                                    env: cloud.DYNAMIC_CURRENT_ENV,
                                  })
                                  exports.main = async (event, context) => {
                                    try {
                                      const result = await cloud.openapi.urllink.generate({
                                          "path": '/pages/publishHomework/publishHomework',
                                          "query": '',
                                          "isExpire": true,
                                          "expireType": 1,
                                          "expireInterval": 1,
                                          "envVersion": 'release',
                                          "cloudBase": {
                                            "env": 'xxx',
                                            "domain": 'xxx.xx',
                                            "path": '/jump-wxa.html',
                                            "query": 'a=1&b=2'
                                          }
                                        })
                                      return result
                                    } catch (err) {
                                      return err
                                    }
                                  } 

                                  返回数据示例

                                        {
                                          "errCode": 0,
                                          "errMsg": "ok",
                                          "urlLink": "URL Link"
                                        }

                        3、错误码

                                (页面最底部)
                                https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/url-link/generateUrlLink.html
        */
</script>